<WITD application="Work item type editor" version="1.0">
  <WORKITEMTYPE name="Review">
    <DESCRIPTION>This work item tracks reviews and the results.</DESCRIPTION>
    <FIELDS>
      <FIELD name="Id" refname="System.Id" type="Integer">
      </FIELD>
      <FIELD name="Title" refname="System.Title" type="String">
		  <HELPTEXT>Short description of the review used to differentiate it in a list or report</HELPTEXT>
        <REQUIRED/>
      </FIELD>
      <FIELD name="Assigned To" refname="System.AssignedTo" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="History" refname="System.History" type="History">
		  <HELPTEXT>Discussion thread and other historical information</HELPTEXT>
      </FIELD>
      <FIELD name="Area Path" refname="System.AreaPath" type="TreePath">
		  <HELPTEXT>The area of the product with which this review is associated</HELPTEXT>
      </FIELD>
      <FIELD name="Iteration Path" refname="System.IterationPath" type="TreePath">
		  <HELPTEXT>The iteration of the product with which this review is associated</HELPTEXT>
      </FIELD>
      <FIELD name="State" refname="System.State" type="String">
		  <HELPTEXT>The workflow state of the review</HELPTEXT>
      </FIELD>
      <FIELD name="Reason" refname="System.Reason" type="String">
		  <HELPTEXT>The reason why the review is in the current state</HELPTEXT>
      </FIELD>
      <FIELD name="Changed Date" refname="System.ChangedDate" type="DateTime">
      </FIELD>
      <FIELD name="Changed By" refname="System.ChangedBy" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Created Date" refname="System.CreatedDate" type="DateTime">
      </FIELD>
      <FIELD name="Created By" refname="System.CreatedBy" type="String">
      </FIELD>
      <!-- *************** Common Fields ****************   -->
      <FIELD name="State Change Date" refname="Microsoft.VSTS.Common.StateChangeDate" type="DateTime">
        <WHENCHANGED field="System.State">
          <SERVERDEFAULT from="clock"/>
        </WHENCHANGED>
        <WHENNOTCHANGED field="System.State">
          <READONLY/>
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD name="Activated Date" refname="Microsoft.VSTS.Common.ActivatedDate" type="DateTime" reportable="dimension">
        <WHENNOTCHANGED field="System.State">
          <READONLY/>
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD name="Activated By" refname="Microsoft.VSTS.Common.ActivatedBy" type="String" reportable="dimension">
        <WHENNOTCHANGED field="System.State">
          <READONLY/>
        </WHENNOTCHANGED>       
      </FIELD>
      <FIELD name="Resolved Date" refname="Microsoft.VSTS.Common.ResolvedDate" type="DateTime" reportable="dimension">
        <WHENNOTCHANGED field="System.State">
          <READONLY/>
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD name="Resolved By" refname="Microsoft.VSTS.Common.ResolvedBy" type="String" reportable="dimension">
      </FIELD>
      <FIELD name="Closed Date" refname="Microsoft.VSTS.Common.ClosedDate" type="DateTime" reportable="dimension">
        <WHENNOTCHANGED field="System.State">
          <READONLY/>
        </WHENNOTCHANGED>
      </FIELD>
      <FIELD name="Closed By" refname="Microsoft.VSTS.Common.ClosedBy" type="String" reportable="dimension">
        <WHENNOTCHANGED field="System.State">
          <READONLY/>
        </WHENNOTCHANGED>
      </FIELD>
      <!-- **************** Build Integration Fields *******************************************  -->
      <FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
        <HELPTEXT>The build in which the review was completed</HELPTEXT>
        <SUGGESTEDVALUES>
          <LISTITEM value="&lt;None&gt;"/>
        </SUGGESTEDVALUES>
      </FIELD>
      <!-- *************** MSF for CMMI PI Fields ****************   -->
      <FIELD name="Purpose" refname="Microsoft.VSTS.CMMI.Purpose" type="HTML">
        <HELPTEXT>The purpose of the review</HELPTEXT>
        <REQUIRED/>
      </FIELD>
      <FIELD name="Comments" refname="Microsoft.VSTS.CMMI.Comments" type="HTML">
		  <HELPTEXT>Comments for the review</HELPTEXT>
      </FIELD>
      <FIELD name="Minutes" refname="Microsoft.VSTS.CMMI.Minutes" type="HTML">
		  <HELPTEXT>The minutes of the review meeting</HELPTEXT>
      </FIELD>
      <FIELD name="Meeting Type" refname="Microsoft.VSTS.CMMI.MeetingType" type="String">
        <HELPTEXT>The type of the review meeting</HELPTEXT>
        <ALLOWEDVALUES>
          <LISTITEM value="Meeting"/>
          <LISTITEM value="Offline"/>
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="Offline"/>
      </FIELD>
      <FIELD name="Called Date" refname="Microsoft.VSTS.CMMI.CalledDate" type="DateTime">
		  <HELPTEXT>The date and time the review was called</HELPTEXT>
      </FIELD>
      <FIELD name="Called By" refname="Microsoft.VSTS.CMMI.CalledBy" type="String">
		  <HELPTEXT>The person who called the review</HELPTEXT>
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Required Attendee 1" refname="Microsoft.VSTS.CMMI.RequiredAttendee1" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Required Attendee 2" refname="Microsoft.VSTS.CMMI.RequiredAttendee2" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Required Attendee 3" refname="Microsoft.VSTS.CMMI.RequiredAttendee3" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Required Attendee 4" refname="Microsoft.VSTS.CMMI.RequiredAttendee4" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Required Attendee 5" refname="Microsoft.VSTS.CMMI.RequiredAttendee5" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Required Attendee 6" refname="Microsoft.VSTS.CMMI.RequiredAttendee6" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Required Attendee 7" refname="Microsoft.VSTS.CMMI.RequiredAttendee7" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Required Attendee 8" refname="Microsoft.VSTS.CMMI.RequiredAttendee8" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Optional Attendee 1" refname="Microsoft.VSTS.CMMI.OptionalAttendee1" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Optional Attendee 2" refname="Microsoft.VSTS.CMMI.OptionalAttendee2" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Optional Attendee 3" refname="Microsoft.VSTS.CMMI.OptionalAttendee3" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Optional Attendee 4" refname="Microsoft.VSTS.CMMI.OptionalAttendee4" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Optional Attendee 5" refname="Microsoft.VSTS.CMMI.OptionalAttendee5" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Optional Attendee 6" refname="Microsoft.VSTS.CMMI.OptionalAttendee6" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Optional Attendee 7" refname="Microsoft.VSTS.CMMI.OptionalAttendee7" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Optional Attendee 8" refname="Microsoft.VSTS.CMMI.OptionalAttendee8" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Actual Attendee 1" refname="Microsoft.VSTS.CMMI.ActualAttendee1" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Actual Attendee 2" refname="Microsoft.VSTS.CMMI.ActualAttendee2" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Actual Attendee 3" refname="Microsoft.VSTS.CMMI.ActualAttendee3" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Actual Attendee 4" refname="Microsoft.VSTS.CMMI.ActualAttendee4" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Actual Attendee 5" refname="Microsoft.VSTS.CMMI.ActualAttendee5" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Actual Attendee 6" refname="Microsoft.VSTS.CMMI.ActualAttendee6" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Actual Attendee 7" refname="Microsoft.VSTS.CMMI.ActualAttendee7" type="String">
        <VALIDUSER/>
      </FIELD>
      <FIELD name="Actual Attendee 8" refname="Microsoft.VSTS.CMMI.ActualAttendee8" type="String">
        <VALIDUSER/>
      </FIELD>
    </FIELDS>
    <WORKFLOW>
      <STATES>
        <STATE value="Active">
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <EMPTY/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <EMPTY/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
              <EMPTY/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
              <EMPTY/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <REQUIRED/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <REQUIRED/>
            </FIELD>
          </FIELDS>
        </STATE>
        <STATE value="Resolved">
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
              <REQUIRED/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
              <REQUIRED/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <EMPTY/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <EMPTY/>
            </FIELD>
            <FIELD refname="System.AssignedTo">
              <REQUIRED/>
            </FIELD>
          </FIELDS>
        </STATE>
        <STATE value="Closed">
          <FIELDS>
            <FIELD refname="System.AssignedTo">
              <EMPTY/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <REQUIRED/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <REQUIRED/>
            </FIELD>
          </FIELDS>
        </STATE>
      </STATES>
      <TRANSITIONS>
        <TRANSITION from="" to="Active">
          <REASONS>
            <DEFAULTREASON value="New"/>
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.CMMI.CalledBy">
              <COPY from="currentuser"/>
              <VALIDUSER />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.CMMI.CalledDate">
              <SERVERDEFAULT from="clock"/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <SERVERDEFAULT from="clock"/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <COPY from="currentuser"/>
              <VALIDUSER />
            </FIELD>
            <FIELD refname="System.AssignedTo">
              <DEFAULT from="currentuser"/>
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Active" to="Resolved">
          <REASONS>
            <DEFAULTREASON value="Accepted with Minor Changes"/>
            <REASON value="Accepted with Major Changes"/>
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
              <SERVERDEFAULT from="clock"/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
              <COPY from="currentuser"/>
              <VALIDUSER />
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Resolved" to="Closed">
          <REASONS>
            <DEFAULTREASON value="Minor Changes Complete"/>
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <SERVERDEFAULT from="clock"/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <COPY from="currentuser"/>
              <VALIDUSER />
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Active" to="Closed">
          <REASONS>
            <DEFAULTREASON value="Accepted (as is)"/>
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <SERVERDEFAULT from="clock"/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <COPY from="currentuser"/>
              <VALIDUSER />
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Closed" to="Active">
          <REASONS>
            <DEFAULTREASON value="Closed in Error"/>
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <SERVERDEFAULT from="clock"/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <COPY from="currentuser"/>
              <VALIDUSER />
            </FIELD>
            <FIELD refname="System.AssignedTo">
              <COPY from="field" field="Microsoft.VSTS.Common.ClosedBy"/>
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Resolved" to="Active">
          <REASONS>
            <DEFAULTREASON value="Major Changes Complete"/>
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <SERVERDEFAULT from="clock"/>
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <COPY from="currentuser"/>
              <VALIDUSER />
            </FIELD>
          </FIELDS>
        </TRANSITION>
      </TRANSITIONS>
    </WORKFLOW>
    <FORM>
      <Layout>
        <Group>
          <Column PercentWidth="70">
            <Control Type="FieldControl" FieldName="System.Title" Label="&amp;Title:" LabelPosition="Left"/>
          </Column>
          <Column PercentWidth="30">
            <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.MeetingType" Label="&amp;Type:" LabelPosition="Left"/>
          </Column>
        </Group>
        <Group Label="Facilitators">
          <Column PercentWidth="100">
            <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.CalledBy" Label="Called &amp;by:" LabelPosition="Left"/>
            <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.CalledDate" Label="Called &amp;date:" LabelPosition="Left"/>
          </Column>
        </Group>
        <Group Label="Status">
          <Column PercentWidth="100">
            <Control Type="FieldControl" FieldName="System.AssignedTo" Label="Assigned &amp;to:" LabelPosition="Left"/>
            <Control Type="FieldControl" FieldName="System.State" Label="&amp;State:" LabelPosition="Left"/>
            <Control Type="FieldControl" FieldName="System.Reason" Label="&amp;Reason:" LabelPosition="Left"/>
          </Column>
        </Group>
        <TabGroup>
          <Tab Label="Purpose">
            <Control Type="HtmlFieldControl" FieldName="Microsoft.VSTS.CMMI.Purpose" Label="&amp;Purpose:" LabelPosition="Top" Dock="Fill"/>
          </Tab>
          <Tab Label="Minutes">
            <Control Type="HtmlFieldControl" FieldName="Microsoft.VSTS.CMMI.Minutes" Label="&amp;Minutes:" LabelPosition="Top" Dock="Fill"/>
          </Tab>
          <Tab Label="Comments">
            <Control Type="HtmlFieldControl" FieldName="Microsoft.VSTS.CMMI.Comments" Label="&amp;Comments:" LabelPosition="Top" Dock="Fill"/>
          </Tab>
          <Tab Label="Attendees">
            <Group>
              <Column PercentWidth="33">
                <Group>
                  <Column PercentWidth="100">
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequiredAttendee1" Label="Required &amp;attendee 1:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequiredAttendee2" Label="Required &amp;attendee 2:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequiredAttendee3" Label="Required &amp;attendee 3:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequiredAttendee4" Label="Required &amp;attendee 4:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequiredAttendee5" Label="Required &amp;attendee 5:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequiredAttendee6" Label="Required &amp;attendee 6:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequiredAttendee7" Label="Required &amp;attendee 7:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequiredAttendee8" Label="Required &amp;attendee 8:" LabelPosition="Left"/>
                  </Column>
                </Group>
              </Column>
              <Column PercentWidth="33">
                <Group>
                  <Column PercentWidth="100">
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.OptionalAttendee1" Label="Optional &amp;attendee 1:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.OptionalAttendee2" Label="Optional &amp;attendee 2:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.OptionalAttendee3" Label="Optional &amp;attendee 3:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.OptionalAttendee4" Label="Optional &amp;attendee 4:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.OptionalAttendee5" Label="Optional &amp;attendee 5:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.OptionalAttendee6" Label="Optional &amp;attendee 6:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.OptionalAttendee7" Label="Optional &amp;attendee 7:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.OptionalAttendee8" Label="Optional &amp;attendee 8:" LabelPosition="Left"/>
                  </Column>
                </Group>
              </Column>
              <Column PercentWidth="34">
                <Group>
                  <Column PercentWidth="100">
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.ActualAttendee1" Label="Actual &amp;attendee 1:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.ActualAttendee2" Label="Actual &amp;attendee 2:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.ActualAttendee3" Label="Actual &amp;attendee 3:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.ActualAttendee4" Label="Actual &amp;attendee 4:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.ActualAttendee5" Label="Actual &amp;attendee 5:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.ActualAttendee6" Label="Actual &amp;attendee 6:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.ActualAttendee7" Label="Actual &amp;attendee 7:" LabelPosition="Left"/>
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.ActualAttendee8" Label="Actual &amp;attendee 8:" LabelPosition="Left"/>
                  </Column>
                </Group>
              </Column>
            </Group>
          </Tab>
          <Tab Label="History">
            <Control Type="WorkItemLogControl" FieldName="System.History" Label="Comment and &amp;history:" LabelPosition="Top" Dock="Fill"/>
          </Tab>
          <Tab Label="Links">
            <Control Type="LinksControl"/>
          </Tab>
          <Tab Label="Attachments">
            <Control Type="AttachmentsControl"/>
          </Tab>
        </TabGroup>
      </Layout>
    </FORM>
  </WORKITEMTYPE>
</WITD>
